<?php

/**
 * Implenta las funciones necesarias para gestionar un proveedor del sistema
 *
 * @author Daniel Cardoza, Gary Dos Santos, Freddy Rodriguez
 */
class DBProveedorDAO {

    private $DBConn = null;

    public function  __construct() {
        $conexion = new conexion();
        $this->DBConn = $conexion->setConnect();
    }
    /**
     * Devuelve un vector con toda la informacion del proveedor que tenga el id
     * que entra por parametro
     *
     * @param <int> $id
     * @return <Array> $fila
     */
    public function getProveedor( $id ) {
        $this->DBConn->consulta( "SELECT *
                            FROM proveedor
                            WHERE PRV_ID = $id
                            AND PRV_STATUS = 1" );

        if ( $this->DBConn->filasAfectadas() != -1){
            $fila = $this->DBConn->extraer_registro();
            return $fila;
        } else {
            return false;
        }

    }

    /**
     * Setea un bloque con la informacion del proveedor
     *
     * @param <panel> $plantillaCON
     * @param <block> $block
     */
    public function setBlockProveedores( $plantillaCON , $block ) {
        $hBlock = $plantillaCON->setBlock( $block );
        $this->DBConn->consulta( "SELECT *
                            FROM proveedor
                            WHERE PRV_STATUS = 1" );

        while ( $fila = $this->DBConn->extraer_registro() ) {
            $plantillaCON->add( $fila );
            $plantillaCON->concat( $hBlock );
        }

    }

    /**
     * Introduce un proveedor nuevo a la base de datos
     * 
     * @return <bool> true
     * @return <bool> false
     */
    public function setProveedor() {
        extract( $_POST );

        if ( isset ( $PRV_ID ) ){
             $this->DBConn->consulta( "INSERT INTO proveedor
                            VALUES ($PRV_ID,'$PRV_RIF','$PRV_NOMBRE_EMPRESA',
                            '$PRV_DIRECCION','$PRV_NOMBRE','$PRV_APELLIDO',
                            '$PRV_TELEFONO','$PRV_EMAIL',1)");
        } else {
             $this->DBConn->consulta( "INSERT INTO proveedor
                            VALUES (NULL,'$PRV_RIF','$PRV_NOMBRE_EMPRESA',
                            '$PRV_DIRECCION','$PRV_NOMBRE','$PRV_APELLIDO',
                            '$PRV_TELEFONO','$PRV_EMAIL',1)");
        }
        if ( $this->DBConn->filasAfectadas() != -1){
            return true;
        } else {
            return false;
        }
        
    }

    /**
     * Actualiza un proveedor del sistema
     *
     * @return <bool> true
     * @return <bool> false
     */
    public function updateProveedor( ){
        extract ( $_POST );
        $this->DBConn->consulta( "UPDATE proveedor
                            SET PRV_RIF = '$PRV_RIF',
                            PRV_NOMBRE_EMPRESA = '$PRV_NOMBRE_EMPRESA',
                            PRV_DIRECCION = '$PRV_DIRECCION',
                            PRV_NOMBRE = '$PRV_NOMBRE',
                            PRV_APELLIDO = '$PRV_APELLIDO',
                            PRV_TELEFONO = '$PRV_TELEFONO',
                            PRV_EMAIL = '$PRV_EMAIL'
                            WHERE PRV_RIF LIKE '$PRV_RIF_ACTUAL'" );

        if ( $this->DBConn->filasAfectadas() != -1){
            return true;
        } else {
            return false;
        }

    }

    /**
    * Eliminacion de un proveedor en base de datos
    *
    * @return <bool> true
    * @return <bool> false
    */
    public function eliminarProveedor(){
        extract( $_GET );
        $this->DBConn->consulta( "UPDATE proveedor
                            SET PRV_STATUS = 0
                            WHERE PRV_ID = $PRV_ID" );

        if ( $this->DBConn->filasAfectadas() != -1){
            return true;
        } else {
            return false;
        }

    }

}
?>
